package Vista;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JButton;

import Controlador.ProductoDAO;
import Modelo.IProducto;
import Modelo.Producto;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JTabbedPane;

public class AddProductoView extends JPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTextField jTxtNombreProducto;
	private JTextField jTxtPrecio;
	private JTextField jTxtStock;
	private JTextField jTxtReferencia;

	/**
	 * Create the panel.
	 */
	public AddProductoView() {
		setLayout(null);
		
		JLabel lblNombre = new JLabel("Nombre:");
		lblNombre.setBounds(32, 148, 46, 14);
		add(lblNombre);
		
		jTxtNombreProducto = new JTextField();
		jTxtNombreProducto.setBounds(103, 145, 86, 20);
		add(jTxtNombreProducto);
		jTxtNombreProducto.setColumns(10);
		
		JLabel lblDescripcin = new JLabel("Descripci\u00F3n:");
		lblDescripcin.setBounds(24, 173, 86, 14);
		add(lblDescripcin);
		
		JTextArea jAreaDescripcion = new JTextArea();
		jAreaDescripcion.setBounds(103, 176, 142, 98);
		add(jAreaDescripcion);
		
		JLabel lblPrecio = new JLabel("Precio:");
		lblPrecio.setBounds(274, 148, 46, 14);
		add(lblPrecio);
		
		jTxtPrecio = new JTextField();
		jTxtPrecio.setBounds(330, 145, 86, 20);
		add(jTxtPrecio);
		jTxtPrecio.setColumns(10);
		
		JLabel lblStock = new JLabel("Stock:");
		lblStock.setBounds(274, 173, 46, 14);
		add(lblStock);
		
		jTxtStock = new JTextField();
		jTxtStock.setBounds(330, 176, 86, 20);
		add(jTxtStock);
		jTxtStock.setColumns(10);
		
		JButton jBtnAddProducto = new JButton("A\u00F1adir");
		jBtnAddProducto.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Producto p = new Producto();
				try {
					p.setNombre(jTxtNombreProducto.getText());
					p.setDescripcion(jAreaDescripcion.getText());
					p.setPrecioUnitario(Float.valueOf(jTxtPrecio.getText()));
					p.setStock(Integer.valueOf(jTxtStock.getText()));
					
					ProductoDAO pDao = new ProductoDAO();
					pDao.create(p);
					
				} catch (Exception e) {
					e.printStackTrace();
					System.err.println("CATH create producto");
				}
			}
		});
		jBtnAddProducto.setBounds(299, 207, 89, 23);
		add(jBtnAddProducto);
		
		JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
		tabbedPane.setBounds(29, 26, 387, 85);
		add(tabbedPane);
		
		JPanel panel = new JPanel();
		tabbedPane.addTab("Busqueda de Producto", null, panel, null);
		panel.setLayout(null);
		
		JLabel lblReferencia = new JLabel("Referencia:");
		lblReferencia.setBounds(24, 27, 101, 14);
		panel.add(lblReferencia);
		
		jTxtReferencia = new JTextField();
		jTxtReferencia.setBounds(103, 24, 113, 20);
		panel.add(jTxtReferencia);
		jTxtReferencia.setColumns(10);
		
		JButton jBtnBuscar = new JButton("Buscar");
		jBtnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				ProductoDAO pDao = new ProductoDAO();
				
				IProducto p = pDao.findByReferencia(Integer.valueOf(jTxtReferencia.getText()));
				jTxtNombreProducto.setText(p.getNombre());
				jAreaDescripcion.setText(p.getDescripcion());
				jTxtPrecio.setText(String.valueOf(p.getPrecioUnitario()));
				jTxtStock.setText(String.valueOf(p.getStock()));
			}
		});
		jBtnBuscar.setBounds(267, 23, 89, 23);
		panel.add(jBtnBuscar);
		
		JButton jBtnActualizar = new JButton("Actualizar");
		jBtnActualizar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				IProducto p = new Producto();
				try {
					p.setIdProducto(Integer.valueOf(jTxtReferencia.getText()));
					p.setNombre(jTxtNombreProducto.getText());
					p.setDescripcion(jAreaDescripcion.getText());
					p.setPrecioUnitario(Float.valueOf(jTxtPrecio.getText()));
					p.setStock(Integer.valueOf(jTxtStock.getText()));
					
					ProductoDAO pDao = new ProductoDAO();
					pDao.update(p);
					
				} catch (Exception e1) {
					e1.printStackTrace();
				}finally{
					jTxtReferencia.setText("");
					jTxtNombreProducto.setText("");
					jAreaDescripcion.setText("");
					jTxtPrecio.setText("");
					jTxtStock.setText("");
				}
				
			}
		});
		jBtnActualizar.setBounds(299, 253, 89, 23);
		add(jBtnActualizar);

	}
}
